package thimeeeee.Model;

//import thimeeeee.Skeleton;

public class Rock extends FallingElement {

    public Rock(){
//        Skeleton.Create("Rock");
    }

    // ha a játékos elüti a követ
    @Override public boolean MeetPlayer(Player p)
    {
//        Skeleton.StartFunc("Rock.MeetPlayer(p)");
        // ha a kő éppen zuhan, akkor megöli a játékost
        //if(s.compareToIgnoreCase("I") == 0)
        if(this._isFalling)
        {
            this.Kill();
            p.Kill();
        }
        // ha nem zuhan, akkor a játékos megpróbálja eltolni
        else //if(s.compareToIgnoreCase("N") == 0)
        {
            Direction dir = Direction.none;
            Direction pDir = p.GetDirection();
            //csak lefelé lehet eltolni, de arra lentről is és fentről is
            if ((pDir == Direction.downright) || (pDir == Direction.upright)){
                dir = Direction.downright;
            }
            else if ((pDir == Direction.downleft) || (pDir == Direction.upleft)){
                dir = Direction.downleft;
            }

            //ha még mindig none a dir értéke, akkor nem toljuk - ez akkor lehet,
            //      ha felfelé/lefelé akartunk tolni
            if (dir != Direction.none){
                Field f = this.MyField.GetNeighbor(dir);
                // ha üres a kő utáni mező, akkor el tudja tolni
                if(f.IsEmpty())
                {
                    this.MoveTo(f);
                    //this.SetDirection(p.GetDirection());
//                    Skeleton.EndFunc("Rock.MeetPlayer(p)","true");
                    return true;
                }
                // ha nem üres, akkor akkor akadályba ütközik
                else
                {
//                    Skeleton.EndFunc("Rock.MeetPlayer(p)","false");
                    return false;
                }
            }
            return false;
        }
//        Skeleton.EndFunc("Rock.MeetPlayer(p)","false");
        return false;
    }
}